package cn.edu.tju.ldj.analytics;

import cn.edu.tju.ldj.analytics.service.IServiceGood;
import cn.edu.tju.ldj.analytics.utils.DataProcessor;
import cn.edu.tju.ldj.analytics.utils.IReflectUtil;
import cn.edu.tju.ldj.analytics.utils.IUtilParam;
import cn.edu.tju.ldj.analytics.utils.IUtilStr;
import cn.edu.tju.ldj.analytics.utils.IUtilSys;
import cn.edu.tju.ldj.analytics.utils.IXmlUtil;
import cn.edu.tju.ldj.analytics.utils.UtilFile;

/**
 * 
 * @author cjy
 * 每个人都需要了解，系统一些工具类的汇总，如果需要调用工具类，请直接使用该类的静态变量中的实例，不要自己重新创建
 *
 */
public class Factory {
	//每个人需要了解，和字符串、日期处理相关的工具类
	public static IUtilStr utilStr;
	
	//其他人无需了解，和反射调用相关
	public static IReflectUtil utilReflect;
	
	//每个人需要了解，和系统参数相关的工具类
	public static IUtilParam utilParam;
	
	//每个人需要了解，和系统工具相关 例如记录日志 断言
	public static IUtilSys utilSys;
	
	//其他人无需了解，和xml文件相关
	public static IXmlUtil utilXml;
	
	//其他人无需了解，和报表相关
	public static IServiceGood servGood;
	
	public static DataProcessor dataProcessor;
	
	//和文件操作相关
	public static UtilFile utilFile;
	static {
		try {
			
			utilStr = new IUtilStr();
			utilSys = new IUtilSys();
			utilReflect=new IReflectUtil();
			utilXml=new IXmlUtil();
			utilFile=new UtilFile();
			
			utilParam = new IUtilParam();	
			
			dataProcessor = new DataProcessor();
			
			servGood=new IServiceGood() ;
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			System.out.println(e.getMessage());
			e.printStackTrace();
			System.exit(-1);
		}
	}
}
